#include <vector>
#include <queue>
#include "btree.h"

std::vector<int> levelOrder(BTreeNode *root) {
    std::queue<BTreeNode*> queue;      // 初始化队列，加入根节点
    queue.push(root);
    // 初始化一个列表，用于保存遍历序列
    std::vector<int> vec;
    while (!queue.empty()) {
        BTreeNode *node = queue.front();
        queue.pop();                   // 队列出队
        vec.push_back(node->val);      // 保存节点值

        if (node->left  != nullptr)
            queue.push(node->left);    // 左子节点入队
        if (node->right != nullptr)
            queue.push(node->right);   // 右子节点入队
    }
    return vec;
}

int main(int argc, char** argv) {

    return 0;
}